import { filter } from './filter'
// 10333
/**
 * 返回数组去重后的副本
 * example 
 *        unique([1, 2, 3, 1]); // -> [1, 2, 3]
 * dependencies filter
 * @param {*} arr  原数组
 * @param {*} cmp  比较器
 * @returns 去重后的数组
 */
export function unique (arr, cmp) {
exports = function (arr, cmp) {
  cmp = cmp || isEqual;
  return filter(arr, function (item, idx, arr) {
    var len = arr.length;

    while (++idx < len) {
      if (cmp(item, arr[idx])) return false;
    }

    return true;
  });
};

function isEqual (a, b) {
  return a === b;
}

return exports;
}